GOOD SHIT
::test is a global test variable
std::setprecision and std::setw have to have #include <iomanip>
namespace fbz = foo::bar::baz; (how to create an alias for a namespace)
namespace { /*stuff here*/ };
is equivalent to
namespace unique {/*empty*/};
using namespace unique;
namespace unique {/*stuff here*/};
Basically, empty namespaces are equivalent to static, in that they allow for global variables or functions that only exist within that file.
Deep copy copies the values over, shallow copy causes both of the variables (copied and copier) to point to the same location in memory
std::move is used to convert to rvalue,std::swap is used to swap using pointers
1. Perfect fit
2. Promotion
short->int
char->int
float->double
enum->int
3. Conversion (Demotions fall under here, but with warnings)
foo(char,float)
foo(int,int)
foo('a','a')
Which one wins? Answer: AMBIGUOUS
EXAMS DON'T USE FLAGS
const int ** <- low-level const
int * const * <- top-level const
int ** const <- top-level const
Increment non-member non-friend functions must pass in a reference to the class, ie
Weapon& operator++(Weapon & w)
std::sort, std::copy
char & c CANNOT BE EQUALS TO int i. THERES NO PROMOTION OR CONVERSION. NONE!
EXTRA CREDIT:
What are the operators that cannot be overloaded?
::
?:
.
.*
SHIT TO CLARIFY
-
for range HOW DOES IT WORK
-
diff between assignment operator overload and copy constructor
-
read derp.cpp
-
MOVE SEMANTICS
-
r-value references
-
conversions, promotions and perfect fits
-
argc, argv
-
union (endianness)
-
size of ints, chars, etc
EXAM IS IN LT6C